﻿using System.Collections.Generic;
using System.Data.SqlClient;
using smp.QueryDb.Structure;

namespace smp.QueryDb.Tools
{
    public interface IDbStructureGenerator
    {
        string GetClassStringForAllAllObjects(string connectionString, string classNamespace);

        void WriteDatabaseFileToProject(string connectionString, string classNamespace, string projectFilename, string filePath,
                               string fileName);

        string GetCodeStringForAllObjects(Dictionary<string, Table> tables, Dictionary<string, Procedure> procs,
                                          string namespaceName, string databaseName);

        Dictionary<string, Table> GetTableColumns(SqlConnection connection);

        Dictionary<string, Procedure> GetProcedures(SqlConnection connection);

        string GenerateCreateTableScript(List<Table> tables);

        string GenerateDropTableScript(List<Table> tables);
    }
}
